#include "stm32f10x.h"                  // Device header
#include "Delay.h"

int main(void)
{
	//开启GPIO总共有3步，第一步：使用RCC开启GPIO的时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);				//因为GPIO在APB2外设（Periph）上，所以选择这个
	
	//第二步：使用GPIO_Inti函数初始化GPIO
	GPIO_InitTypeDef GPIO_InitStruct;									//首先定义一个变量，是结构体，以下是他的内容
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;						//推挽输出
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12;							//也可以设置全部引脚，GPIO_Pin_All就是全部引脚
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;						//一般都是50MHz频率输出
	GPIO_Init(GPIOB,&GPIO_InitStruct);									//初始化GPIOA端口，后面是结构体变量
	
	//第三步：使用输出/输入函数控制GPIO口 --- 以下3个都是输出函数，还有一个GPIO_Write后面会介绍
	//GPIO_SetBits(GPIOA,GPIO_Pin_0);									//GPIO_SetBits是设置哪一个GPIO，哪一个引脚置1
	//GPIO_ResetBits(GPIOA,GPIO_Pin_0);									//GPIO_ResetBits就是清零，设置0
	//GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);						//void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal),
	//GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);							//BitAction BitVal就是取Bit_RESET置0 或者Bit_SET 置1
	
	
	while(1)
	{
		GPIO_SetBits(GPIOB,GPIO_Pin_12);								
		Delay_ms(100);
		GPIO_ResetBits(GPIOB,GPIO_Pin_12);				
		Delay_ms(100);
		GPIO_SetBits(GPIOB,GPIO_Pin_12);								
		Delay_ms(100);
		GPIO_ResetBits(GPIOB,GPIO_Pin_12);				
		Delay_ms(700);
	}
}
